Real-time streaming connections such as connections utilized for voice or video communication and other time sensitive data may be transmitted over unreliable networks such as IP networks, cellular networks, wireless networks, and the Internet. Data packets may be lost while being sent through the network. Often a different communication connection is established to send control information regarding the real-time streaming connection. For example, an “out-of-band” communications mechanism may be utilized to send periodic reports and instructions back and forth, allowing senders and receivers to understand how well the information is flowing between them and adjust parameters of the connection accordingly.
Unfortunately, because the control information is provided out of band, it is often stripped by intermediate devices in the network such as network address translators (NATs), firewalls, or other security devices. Each device traversed across a network increases the likelihood the control information will not reach end-to-end. Even when the control information is not stripped before reaching a remote party, the process of providing periodic reports about a different connection is excessively complex. Thus in many implementations, control information is not utilized and results in poor real-time streaming performance. Therefore, there exists a need for a better way to provide real-time streaming control information.